Checkpoint 03: native Linux gamepad host
Parent: Linux-Native-02-2026-1007-1345-4939.
Linux uses SDL2 GameController mappings, generic joystick fallback, left-stick deadzone, D-pad/hat/buttons, four slots, device instance IDs, disconnect/reconnect handling, and cleanup of owned subsystem/device references.
Windows XInput/WinMM implementation moved unchanged to gamepads_windows.bi. Byte comparison against checkpoint 02 passed.
Shared gamepads.bi now selects the host implementation. Emulator button masks and public polling functions are unchanged.
SDL C-header integration fixes: private POSIX rename alias and a local SNES division-result variable renamed to avoid the C math remainder symbol. Arithmetic unchanged.
Native virtual-joystick test PASS: buttons, stick deadzone, hat, releases, hot-unplug, and bounds checks. No physical controller was available; hardware controller mapping remains unverified.
Linux full application object compilation PASS for x86_64 native and x86 cross-target OpenGL.
Windows application code generation PASS for 32/64 OpenGL/D3D11. No Windows link/runtime claim.
Inherited checkpoint 02 limitations remain: Windows GUI/GDI display/audio/archive helpers block native Linux application linking; Vulkan renderer remains unfinished; native x86 runtime unavailable here.
